/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: notification_service.proto

package com.aiflow.proto;

public final class NotificationServiceOuterClass {
  private NotificationServiceOuterClass() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface EventProtoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:EventProto)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string key = 1;</code>
     */
    java.lang.String getKey();
    /**
     * <code>string key = 1;</code>
     */
    com.google.protobuf.ByteString
        getKeyBytes();

    /**
     * <code>string value = 2;</code>
     */
    java.lang.String getValue();
    /**
     * <code>string value = 2;</code>
     */
    com.google.protobuf.ByteString
        getValueBytes();

    /**
     * <code>string event_type = 3;</code>
     */
    java.lang.String getEventType();
    /**
     * <code>string event_type = 3;</code>
     */
    com.google.protobuf.ByteString
        getEventTypeBytes();

    /**
     * <code>int32 version = 4;</code>
     */
    int getVersion();

    /**
     * <code>int64 create_time = 5;</code>
     */
    long getCreateTime();

    /**
     * <code>int64 id = 6;</code>
     */
    long getId();
  }
  /**
   * Protobuf type {@code EventProto}
   */
  public  static final class EventProto extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:EventProto)
      EventProtoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use EventProto.newBuilder() to construct.
    private EventProto(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private EventProto() {
      key_ = "";
      value_ = "";
      eventType_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private EventProto(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              key_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();

              value_ = s;
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();

              eventType_ = s;
              break;
            }
            case 32: {

              version_ = input.readInt32();
              break;
            }
            case 40: {

              createTime_ = input.readInt64();
              break;
            }
            case 48: {

              id_ = input.readInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.aiflow.proto.NotificationServiceOuterClass.internal_static_EventProto_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.aiflow.proto.NotificationServiceOuterClass.internal_static_EventProto_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.aiflow.proto.NotificationServiceOuterClass.EventProto.class, com.aiflow.proto.NotificationServiceOuterClass.EventProto.Builder.class);
    }

    public static final int KEY_FIELD_NUMBER = 1;
    private volatile java.lang.Object key_;
    /**
     * <code>string key = 1;</code>
     */
    public java.lang.String getKey() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        key_ = s;
        return s;
      }
    }
    /**
     * <code>string key = 1;</code>
     */
    public com.google.protobuf.ByteString
        getKeyBytes() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        key_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VALUE_FIELD_NUMBER = 2;
    private volatile java.lang.Object value_;
    /**
     * <code>string value = 2;</code>
     */
    public java.lang.String getValue() {
      java.lang.Object ref = value_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        value_ = s;
        return s;
      }
    }
    /**
     * <code>string value = 2;</code>
     */
    public com.google.protobuf.ByteString
        getValueBytes() {
      java.lang.Object ref = value_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        value_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EVENT_TYPE_FIELD_NUMBER = 3;
    private volatile java.lang.Object eventType_;
    /**
     * <code>string event_type = 3;</code>
     */
    public java.lang.String getEventType() {
      java.lang.Object ref = eventType_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        eventType_ = s;
        return s;
      }
    }
    /**
     * <code>string event_type = 3;</code>
     */
    public com.google.protobuf.ByteString
        getEventTypeBytes() {
      java.lang.Object ref = eventType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        eventType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VERSION_FIELD_NUMBER = 4;
    private int version_;
    /**
     * <code>int32 version = 4;</code>
     */
    public int getVersion() {
      return version_;
    }

    public static final int CREATE_TIME_FIELD_NUMBER = 5;
    private long createTime_;
    /**
     * <code>int64 create_time = 5;</code>
     */
    public long getCreateTime() {
      return createTime_;
    }

    public static final int ID_FIELD_NUMBER = 6;
    private long id_;
    /**
     * <code>int64 id = 6;</code>
     */
    public long getId() {
      return id_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getKeyBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, key_);
      }
      if (!getValueBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, value_);
      }
      if (!getEventTypeBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, eventType_);
      }
      if (version_ != 0) {
        output.writeInt32(4, version_);
      }
      if (createTime_ != 0L) {
        output.writeInt64(5, createTime_);
      }
      if (id_ != 0L) {
        output.writeInt64(6, id_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!getKeyBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, key_);
      }
      if (!getValueBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, value_);
      }
      if (!getEventTypeBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, eventType_);
      }
      if (version_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, version_);
      }
      if (createTime_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(5, createTime_);
      }
      if (id_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(6, id_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.aiflow.proto.NotificationServiceOuterClass.EventProto)) {
        return super.equals(obj);
      }
      com.aiflow.proto.NotificationServiceOuterClass.EventProto other = (com.aiflow.proto.NotificationServiceOuterClass.EventProto) obj;

      if (!getKey()
          .equals(other.getKey())) return false;
      if (!getValue()
          .equals(other.getValue())) return false;
      if (!getEventType()
          .equals(other.getEventType())) return false;
      if (getVersion()
          != other.getVersion()) return false;
      if (getCreateTime()
          != other.getCreateTime()) return false;
      if (getId()
          != other.getId()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + KEY_FIELD_NUMBER;
      hash = (53 * hash) + getKey().hashCode();
      hash = (37 * hash) + VALUE_FIELD_NUMBER;
      hash = (53 * hash) + getValue().hashCode();
      hash = (37 * hash) + EVENT_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getEventType().hashCode();
      hash = (37 * hash) + VERSION_FIELD_NUMBER;
      hash = (53 * hash) + getVersion();
      hash = (37 * hash) + CREATE_TIME_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getCreateTime());
      hash = (37 * hash) + ID_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getId());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.aiflow.proto.NotificationServiceOuterClass.EventProto parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.EventProto parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.EventProto parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.EventProto parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.EventProto parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.EventProto parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.EventProto parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.EventProto parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.EventProto parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.EventProto parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.EventProto parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.EventProto parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.aiflow.proto.NotificationServiceOuterClass.EventProto prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code EventProto}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:EventProto)
        com.aiflow.proto.NotificationServiceOuterClass.EventProtoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.aiflow.proto.NotificationServiceOuterClass.internal_static_EventProto_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.aiflow.proto.NotificationServiceOuterClass.internal_static_EventProto_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.aiflow.proto.NotificationServiceOuterClass.EventProto.class, com.aiflow.proto.NotificationServiceOuterClass.EventProto.Builder.class);
      }

      // Construct using com.aiflow.proto.NotificationServiceOuterClass.EventProto.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        key_ = "";

        value_ = "";

        eventType_ = "";

        version_ = 0;

        createTime_ = 0L;

        id_ = 0L;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.aiflow.proto.NotificationServiceOuterClass.internal_static_EventProto_descriptor;
      }

      @java.lang.Override
      public com.aiflow.proto.NotificationServiceOuterClass.EventProto getDefaultInstanceForType() {
        return com.aiflow.proto.NotificationServiceOuterClass.EventProto.getDefaultInstance();
      }

      @java.lang.Override
      public com.aiflow.proto.NotificationServiceOuterClass.EventProto build() {
        com.aiflow.proto.NotificationServiceOuterClass.EventProto result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.aiflow.proto.NotificationServiceOuterClass.EventProto buildPartial() {
        com.aiflow.proto.NotificationServiceOuterClass.EventProto result = new com.aiflow.proto.NotificationServiceOuterClass.EventProto(this);
        result.key_ = key_;
        result.value_ = value_;
        result.eventType_ = eventType_;
        result.version_ = version_;
        result.createTime_ = createTime_;
        result.id_ = id_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.aiflow.proto.NotificationServiceOuterClass.EventProto) {
          return mergeFrom((com.aiflow.proto.NotificationServiceOuterClass.EventProto)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.aiflow.proto.NotificationServiceOuterClass.EventProto other) {
        if (other == com.aiflow.proto.NotificationServiceOuterClass.EventProto.getDefaultInstance()) return this;
        if (!other.getKey().isEmpty()) {
          key_ = other.key_;
          onChanged();
        }
        if (!other.getValue().isEmpty()) {
          value_ = other.value_;
          onChanged();
        }
        if (!other.getEventType().isEmpty()) {
          eventType_ = other.eventType_;
          onChanged();
        }
        if (other.getVersion() != 0) {
          setVersion(other.getVersion());
        }
        if (other.getCreateTime() != 0L) {
          setCreateTime(other.getCreateTime());
        }
        if (other.getId() != 0L) {
          setId(other.getId());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.aiflow.proto.NotificationServiceOuterClass.EventProto parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.aiflow.proto.NotificationServiceOuterClass.EventProto) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object key_ = "";
      /**
       * <code>string key = 1;</code>
       */
      public java.lang.String getKey() {
        java.lang.Object ref = key_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          key_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string key = 1;</code>
       */
      public com.google.protobuf.ByteString
          getKeyBytes() {
        java.lang.Object ref = key_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          key_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string key = 1;</code>
       */
      public Builder setKey(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        key_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string key = 1;</code>
       */
      public Builder clearKey() {
        
        key_ = getDefaultInstance().getKey();
        onChanged();
        return this;
      }
      /**
       * <code>string key = 1;</code>
       */
      public Builder setKeyBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        key_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object value_ = "";
      /**
       * <code>string value = 2;</code>
       */
      public java.lang.String getValue() {
        java.lang.Object ref = value_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          value_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string value = 2;</code>
       */
      public com.google.protobuf.ByteString
          getValueBytes() {
        java.lang.Object ref = value_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          value_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string value = 2;</code>
       */
      public Builder setValue(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string value = 2;</code>
       */
      public Builder clearValue() {
        
        value_ = getDefaultInstance().getValue();
        onChanged();
        return this;
      }
      /**
       * <code>string value = 2;</code>
       */
      public Builder setValueBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        value_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object eventType_ = "";
      /**
       * <code>string event_type = 3;</code>
       */
      public java.lang.String getEventType() {
        java.lang.Object ref = eventType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          eventType_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string event_type = 3;</code>
       */
      public com.google.protobuf.ByteString
          getEventTypeBytes() {
        java.lang.Object ref = eventType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          eventType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string event_type = 3;</code>
       */
      public Builder setEventType(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        eventType_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string event_type = 3;</code>
       */
      public Builder clearEventType() {
        
        eventType_ = getDefaultInstance().getEventType();
        onChanged();
        return this;
      }
      /**
       * <code>string event_type = 3;</code>
       */
      public Builder setEventTypeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        eventType_ = value;
        onChanged();
        return this;
      }

      private int version_ ;
      /**
       * <code>int32 version = 4;</code>
       */
      public int getVersion() {
        return version_;
      }
      /**
       * <code>int32 version = 4;</code>
       */
      public Builder setVersion(int value) {
        
        version_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 version = 4;</code>
       */
      public Builder clearVersion() {
        
        version_ = 0;
        onChanged();
        return this;
      }

      private long createTime_ ;
      /**
       * <code>int64 create_time = 5;</code>
       */
      public long getCreateTime() {
        return createTime_;
      }
      /**
       * <code>int64 create_time = 5;</code>
       */
      public Builder setCreateTime(long value) {
        
        createTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int64 create_time = 5;</code>
       */
      public Builder clearCreateTime() {
        
        createTime_ = 0L;
        onChanged();
        return this;
      }

      private long id_ ;
      /**
       * <code>int64 id = 6;</code>
       */
      public long getId() {
        return id_;
      }
      /**
       * <code>int64 id = 6;</code>
       */
      public Builder setId(long value) {
        
        id_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int64 id = 6;</code>
       */
      public Builder clearId() {
        
        id_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:EventProto)
    }

    // @@protoc_insertion_point(class_scope:EventProto)
    private static final com.aiflow.proto.NotificationServiceOuterClass.EventProto DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.aiflow.proto.NotificationServiceOuterClass.EventProto();
    }

    public static com.aiflow.proto.NotificationServiceOuterClass.EventProto getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<EventProto>
        PARSER = new com.google.protobuf.AbstractParser<EventProto>() {
      @java.lang.Override
      public EventProto parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new EventProto(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<EventProto> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<EventProto> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.aiflow.proto.NotificationServiceOuterClass.EventProto getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SendEventRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:SendEventRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.EventProto event = 1;</code>
     */
    boolean hasEvent();
    /**
     * <code>.EventProto event = 1;</code>
     */
    com.aiflow.proto.NotificationServiceOuterClass.EventProto getEvent();
    /**
     * <code>.EventProto event = 1;</code>
     */
    com.aiflow.proto.NotificationServiceOuterClass.EventProtoOrBuilder getEventOrBuilder();
  }
  /**
   * Protobuf type {@code SendEventRequest}
   */
  public  static final class SendEventRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:SendEventRequest)
      SendEventRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SendEventRequest.newBuilder() to construct.
    private SendEventRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SendEventRequest() {
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private SendEventRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              com.aiflow.proto.NotificationServiceOuterClass.EventProto.Builder subBuilder = null;
              if (event_ != null) {
                subBuilder = event_.toBuilder();
              }
              event_ = input.readMessage(com.aiflow.proto.NotificationServiceOuterClass.EventProto.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(event_);
                event_ = subBuilder.buildPartial();
              }

              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.aiflow.proto.NotificationServiceOuterClass.internal_static_SendEventRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.aiflow.proto.NotificationServiceOuterClass.internal_static_SendEventRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest.class, com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest.Builder.class);
    }

    public static final int EVENT_FIELD_NUMBER = 1;
    private com.aiflow.proto.NotificationServiceOuterClass.EventProto event_;
    /**
     * <code>.EventProto event = 1;</code>
     */
    public boolean hasEvent() {
      return event_ != null;
    }
    /**
     * <code>.EventProto event = 1;</code>
     */
    public com.aiflow.proto.NotificationServiceOuterClass.EventProto getEvent() {
      return event_ == null ? com.aiflow.proto.NotificationServiceOuterClass.EventProto.getDefaultInstance() : event_;
    }
    /**
     * <code>.EventProto event = 1;</code>
     */
    public com.aiflow.proto.NotificationServiceOuterClass.EventProtoOrBuilder getEventOrBuilder() {
      return getEvent();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (event_ != null) {
        output.writeMessage(1, getEvent());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (event_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getEvent());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest)) {
        return super.equals(obj);
      }
      com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest other = (com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest) obj;

      if (hasEvent() != other.hasEvent()) return false;
      if (hasEvent()) {
        if (!getEvent()
            .equals(other.getEvent())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasEvent()) {
        hash = (37 * hash) + EVENT_FIELD_NUMBER;
        hash = (53 * hash) + getEvent().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code SendEventRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:SendEventRequest)
        com.aiflow.proto.NotificationServiceOuterClass.SendEventRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.aiflow.proto.NotificationServiceOuterClass.internal_static_SendEventRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.aiflow.proto.NotificationServiceOuterClass.internal_static_SendEventRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest.class, com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest.Builder.class);
      }

      // Construct using com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (eventBuilder_ == null) {
          event_ = null;
        } else {
          event_ = null;
          eventBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.aiflow.proto.NotificationServiceOuterClass.internal_static_SendEventRequest_descriptor;
      }

      @java.lang.Override
      public com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest getDefaultInstanceForType() {
        return com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest.getDefaultInstance();
      }

      @java.lang.Override
      public com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest build() {
        com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest buildPartial() {
        com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest result = new com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest(this);
        if (eventBuilder_ == null) {
          result.event_ = event_;
        } else {
          result.event_ = eventBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest) {
          return mergeFrom((com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest other) {
        if (other == com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest.getDefaultInstance()) return this;
        if (other.hasEvent()) {
          mergeEvent(other.getEvent());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private com.aiflow.proto.NotificationServiceOuterClass.EventProto event_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.aiflow.proto.NotificationServiceOuterClass.EventProto, com.aiflow.proto.NotificationServiceOuterClass.EventProto.Builder, com.aiflow.proto.NotificationServiceOuterClass.EventProtoOrBuilder> eventBuilder_;
      /**
       * <code>.EventProto event = 1;</code>
       */
      public boolean hasEvent() {
        return eventBuilder_ != null || event_ != null;
      }
      /**
       * <code>.EventProto event = 1;</code>
       */
      public com.aiflow.proto.NotificationServiceOuterClass.EventProto getEvent() {
        if (eventBuilder_ == null) {
          return event_ == null ? com.aiflow.proto.NotificationServiceOuterClass.EventProto.getDefaultInstance() : event_;
        } else {
          return eventBuilder_.getMessage();
        }
      }
      /**
       * <code>.EventProto event = 1;</code>
       */
      public Builder setEvent(com.aiflow.proto.NotificationServiceOuterClass.EventProto value) {
        if (eventBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          event_ = value;
          onChanged();
        } else {
          eventBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.EventProto event = 1;</code>
       */
      public Builder setEvent(
          com.aiflow.proto.NotificationServiceOuterClass.EventProto.Builder builderForValue) {
        if (eventBuilder_ == null) {
          event_ = builderForValue.build();
          onChanged();
        } else {
          eventBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.EventProto event = 1;</code>
       */
      public Builder mergeEvent(com.aiflow.proto.NotificationServiceOuterClass.EventProto value) {
        if (eventBuilder_ == null) {
          if (event_ != null) {
            event_ =
              com.aiflow.proto.NotificationServiceOuterClass.EventProto.newBuilder(event_).mergeFrom(value).buildPartial();
          } else {
            event_ = value;
          }
          onChanged();
        } else {
          eventBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.EventProto event = 1;</code>
       */
      public Builder clearEvent() {
        if (eventBuilder_ == null) {
          event_ = null;
          onChanged();
        } else {
          event_ = null;
          eventBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.EventProto event = 1;</code>
       */
      public com.aiflow.proto.NotificationServiceOuterClass.EventProto.Builder getEventBuilder() {
        
        onChanged();
        return getEventFieldBuilder().getBuilder();
      }
      /**
       * <code>.EventProto event = 1;</code>
       */
      public com.aiflow.proto.NotificationServiceOuterClass.EventProtoOrBuilder getEventOrBuilder() {
        if (eventBuilder_ != null) {
          return eventBuilder_.getMessageOrBuilder();
        } else {
          return event_ == null ?
              com.aiflow.proto.NotificationServiceOuterClass.EventProto.getDefaultInstance() : event_;
        }
      }
      /**
       * <code>.EventProto event = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.aiflow.proto.NotificationServiceOuterClass.EventProto, com.aiflow.proto.NotificationServiceOuterClass.EventProto.Builder, com.aiflow.proto.NotificationServiceOuterClass.EventProtoOrBuilder> 
          getEventFieldBuilder() {
        if (eventBuilder_ == null) {
          eventBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.aiflow.proto.NotificationServiceOuterClass.EventProto, com.aiflow.proto.NotificationServiceOuterClass.EventProto.Builder, com.aiflow.proto.NotificationServiceOuterClass.EventProtoOrBuilder>(
                  getEvent(),
                  getParentForChildren(),
                  isClean());
          event_ = null;
        }
        return eventBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:SendEventRequest)
    }

    // @@protoc_insertion_point(class_scope:SendEventRequest)
    private static final com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest();
    }

    public static com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<SendEventRequest>
        PARSER = new com.google.protobuf.AbstractParser<SendEventRequest>() {
      @java.lang.Override
      public SendEventRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new SendEventRequest(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<SendEventRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<SendEventRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SendEventsResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:SendEventsResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string return_code = 1;</code>
     */
    java.lang.String getReturnCode();
    /**
     * <code>string return_code = 1;</code>
     */
    com.google.protobuf.ByteString
        getReturnCodeBytes();

    /**
     * <code>string return_msg = 2;</code>
     */
    java.lang.String getReturnMsg();
    /**
     * <code>string return_msg = 2;</code>
     */
    com.google.protobuf.ByteString
        getReturnMsgBytes();

    /**
     * <code>.EventProto event = 3;</code>
     */
    boolean hasEvent();
    /**
     * <code>.EventProto event = 3;</code>
     */
    com.aiflow.proto.NotificationServiceOuterClass.EventProto getEvent();
    /**
     * <code>.EventProto event = 3;</code>
     */
    com.aiflow.proto.NotificationServiceOuterClass.EventProtoOrBuilder getEventOrBuilder();
  }
  /**
   * Protobuf type {@code SendEventsResponse}
   */
  public  static final class SendEventsResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:SendEventsResponse)
      SendEventsResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SendEventsResponse.newBuilder() to construct.
    private SendEventsResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SendEventsResponse() {
      returnCode_ = "";
      returnMsg_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private SendEventsResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              returnCode_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();

              returnMsg_ = s;
              break;
            }
            case 26: {
              com.aiflow.proto.NotificationServiceOuterClass.EventProto.Builder subBuilder = null;
              if (event_ != null) {
                subBuilder = event_.toBuilder();
              }
              event_ = input.readMessage(com.aiflow.proto.NotificationServiceOuterClass.EventProto.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(event_);
                event_ = subBuilder.buildPartial();
              }

              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.aiflow.proto.NotificationServiceOuterClass.internal_static_SendEventsResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.aiflow.proto.NotificationServiceOuterClass.internal_static_SendEventsResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse.class, com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse.Builder.class);
    }

    public static final int RETURN_CODE_FIELD_NUMBER = 1;
    private volatile java.lang.Object returnCode_;
    /**
     * <code>string return_code = 1;</code>
     */
    public java.lang.String getReturnCode() {
      java.lang.Object ref = returnCode_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        returnCode_ = s;
        return s;
      }
    }
    /**
     * <code>string return_code = 1;</code>
     */
    public com.google.protobuf.ByteString
        getReturnCodeBytes() {
      java.lang.Object ref = returnCode_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        returnCode_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int RETURN_MSG_FIELD_NUMBER = 2;
    private volatile java.lang.Object returnMsg_;
    /**
     * <code>string return_msg = 2;</code>
     */
    public java.lang.String getReturnMsg() {
      java.lang.Object ref = returnMsg_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        returnMsg_ = s;
        return s;
      }
    }
    /**
     * <code>string return_msg = 2;</code>
     */
    public com.google.protobuf.ByteString
        getReturnMsgBytes() {
      java.lang.Object ref = returnMsg_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        returnMsg_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EVENT_FIELD_NUMBER = 3;
    private com.aiflow.proto.NotificationServiceOuterClass.EventProto event_;
    /**
     * <code>.EventProto event = 3;</code>
     */
    public boolean hasEvent() {
      return event_ != null;
    }
    /**
     * <code>.EventProto event = 3;</code>
     */
    public com.aiflow.proto.NotificationServiceOuterClass.EventProto getEvent() {
      return event_ == null ? com.aiflow.proto.NotificationServiceOuterClass.EventProto.getDefaultInstance() : event_;
    }
    /**
     * <code>.EventProto event = 3;</code>
     */
    public com.aiflow.proto.NotificationServiceOuterClass.EventProtoOrBuilder getEventOrBuilder() {
      return getEvent();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getReturnCodeBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, returnCode_);
      }
      if (!getReturnMsgBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, returnMsg_);
      }
      if (event_ != null) {
        output.writeMessage(3, getEvent());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!getReturnCodeBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, returnCode_);
      }
      if (!getReturnMsgBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, returnMsg_);
      }
      if (event_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getEvent());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse)) {
        return super.equals(obj);
      }
      com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse other = (com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse) obj;

      if (!getReturnCode()
          .equals(other.getReturnCode())) return false;
      if (!getReturnMsg()
          .equals(other.getReturnMsg())) return false;
      if (hasEvent() != other.hasEvent()) return false;
      if (hasEvent()) {
        if (!getEvent()
            .equals(other.getEvent())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + RETURN_CODE_FIELD_NUMBER;
      hash = (53 * hash) + getReturnCode().hashCode();
      hash = (37 * hash) + RETURN_MSG_FIELD_NUMBER;
      hash = (53 * hash) + getReturnMsg().hashCode();
      if (hasEvent()) {
        hash = (37 * hash) + EVENT_FIELD_NUMBER;
        hash = (53 * hash) + getEvent().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code SendEventsResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:SendEventsResponse)
        com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.aiflow.proto.NotificationServiceOuterClass.internal_static_SendEventsResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.aiflow.proto.NotificationServiceOuterClass.internal_static_SendEventsResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse.class, com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse.Builder.class);
      }

      // Construct using com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        returnCode_ = "";

        returnMsg_ = "";

        if (eventBuilder_ == null) {
          event_ = null;
        } else {
          event_ = null;
          eventBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.aiflow.proto.NotificationServiceOuterClass.internal_static_SendEventsResponse_descriptor;
      }

      @java.lang.Override
      public com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse getDefaultInstanceForType() {
        return com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse.getDefaultInstance();
      }

      @java.lang.Override
      public com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse build() {
        com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse buildPartial() {
        com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse result = new com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse(this);
        result.returnCode_ = returnCode_;
        result.returnMsg_ = returnMsg_;
        if (eventBuilder_ == null) {
          result.event_ = event_;
        } else {
          result.event_ = eventBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse) {
          return mergeFrom((com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse other) {
        if (other == com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse.getDefaultInstance()) return this;
        if (!other.getReturnCode().isEmpty()) {
          returnCode_ = other.returnCode_;
          onChanged();
        }
        if (!other.getReturnMsg().isEmpty()) {
          returnMsg_ = other.returnMsg_;
          onChanged();
        }
        if (other.hasEvent()) {
          mergeEvent(other.getEvent());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object returnCode_ = "";
      /**
       * <code>string return_code = 1;</code>
       */
      public java.lang.String getReturnCode() {
        java.lang.Object ref = returnCode_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          returnCode_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string return_code = 1;</code>
       */
      public com.google.protobuf.ByteString
          getReturnCodeBytes() {
        java.lang.Object ref = returnCode_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          returnCode_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string return_code = 1;</code>
       */
      public Builder setReturnCode(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        returnCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string return_code = 1;</code>
       */
      public Builder clearReturnCode() {
        
        returnCode_ = getDefaultInstance().getReturnCode();
        onChanged();
        return this;
      }
      /**
       * <code>string return_code = 1;</code>
       */
      public Builder setReturnCodeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        returnCode_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object returnMsg_ = "";
      /**
       * <code>string return_msg = 2;</code>
       */
      public java.lang.String getReturnMsg() {
        java.lang.Object ref = returnMsg_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          returnMsg_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string return_msg = 2;</code>
       */
      public com.google.protobuf.ByteString
          getReturnMsgBytes() {
        java.lang.Object ref = returnMsg_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          returnMsg_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string return_msg = 2;</code>
       */
      public Builder setReturnMsg(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        returnMsg_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string return_msg = 2;</code>
       */
      public Builder clearReturnMsg() {
        
        returnMsg_ = getDefaultInstance().getReturnMsg();
        onChanged();
        return this;
      }
      /**
       * <code>string return_msg = 2;</code>
       */
      public Builder setReturnMsgBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        returnMsg_ = value;
        onChanged();
        return this;
      }

      private com.aiflow.proto.NotificationServiceOuterClass.EventProto event_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.aiflow.proto.NotificationServiceOuterClass.EventProto, com.aiflow.proto.NotificationServiceOuterClass.EventProto.Builder, com.aiflow.proto.NotificationServiceOuterClass.EventProtoOrBuilder> eventBuilder_;
      /**
       * <code>.EventProto event = 3;</code>
       */
      public boolean hasEvent() {
        return eventBuilder_ != null || event_ != null;
      }
      /**
       * <code>.EventProto event = 3;</code>
       */
      public com.aiflow.proto.NotificationServiceOuterClass.EventProto getEvent() {
        if (eventBuilder_ == null) {
          return event_ == null ? com.aiflow.proto.NotificationServiceOuterClass.EventProto.getDefaultInstance() : event_;
        } else {
          return eventBuilder_.getMessage();
        }
      }
      /**
       * <code>.EventProto event = 3;</code>
       */
      public Builder setEvent(com.aiflow.proto.NotificationServiceOuterClass.EventProto value) {
        if (eventBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          event_ = value;
          onChanged();
        } else {
          eventBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.EventProto event = 3;</code>
       */
      public Builder setEvent(
          com.aiflow.proto.NotificationServiceOuterClass.EventProto.Builder builderForValue) {
        if (eventBuilder_ == null) {
          event_ = builderForValue.build();
          onChanged();
        } else {
          eventBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.EventProto event = 3;</code>
       */
      public Builder mergeEvent(com.aiflow.proto.NotificationServiceOuterClass.EventProto value) {
        if (eventBuilder_ == null) {
          if (event_ != null) {
            event_ =
              com.aiflow.proto.NotificationServiceOuterClass.EventProto.newBuilder(event_).mergeFrom(value).buildPartial();
          } else {
            event_ = value;
          }
          onChanged();
        } else {
          eventBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.EventProto event = 3;</code>
       */
      public Builder clearEvent() {
        if (eventBuilder_ == null) {
          event_ = null;
          onChanged();
        } else {
          event_ = null;
          eventBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.EventProto event = 3;</code>
       */
      public com.aiflow.proto.NotificationServiceOuterClass.EventProto.Builder getEventBuilder() {
        
        onChanged();
        return getEventFieldBuilder().getBuilder();
      }
      /**
       * <code>.EventProto event = 3;</code>
       */
      public com.aiflow.proto.NotificationServiceOuterClass.EventProtoOrBuilder getEventOrBuilder() {
        if (eventBuilder_ != null) {
          return eventBuilder_.getMessageOrBuilder();
        } else {
          return event_ == null ?
              com.aiflow.proto.NotificationServiceOuterClass.EventProto.getDefaultInstance() : event_;
        }
      }
      /**
       * <code>.EventProto event = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.aiflow.proto.NotificationServiceOuterClass.EventProto, com.aiflow.proto.NotificationServiceOuterClass.EventProto.Builder, com.aiflow.proto.NotificationServiceOuterClass.EventProtoOrBuilder> 
          getEventFieldBuilder() {
        if (eventBuilder_ == null) {
          eventBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.aiflow.proto.NotificationServiceOuterClass.EventProto, com.aiflow.proto.NotificationServiceOuterClass.EventProto.Builder, com.aiflow.proto.NotificationServiceOuterClass.EventProtoOrBuilder>(
                  getEvent(),
                  getParentForChildren(),
                  isClean());
          event_ = null;
        }
        return eventBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:SendEventsResponse)
    }

    // @@protoc_insertion_point(class_scope:SendEventsResponse)
    private static final com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse();
    }

    public static com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<SendEventsResponse>
        PARSER = new com.google.protobuf.AbstractParser<SendEventsResponse>() {
      @java.lang.Override
      public SendEventsResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new SendEventsResponse(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<SendEventsResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<SendEventsResponse> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ListEventsRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ListEventsRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.EventProto event = 1;</code>
     */
    boolean hasEvent();
    /**
     * <code>.EventProto event = 1;</code>
     */
    com.aiflow.proto.NotificationServiceOuterClass.EventProto getEvent();
    /**
     * <code>.EventProto event = 1;</code>
     */
    com.aiflow.proto.NotificationServiceOuterClass.EventProtoOrBuilder getEventOrBuilder();

    /**
     * <code>int32 timeout_seconds = 2;</code>
     */
    int getTimeoutSeconds();
  }
  /**
   * Protobuf type {@code ListEventsRequest}
   */
  public  static final class ListEventsRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ListEventsRequest)
      ListEventsRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ListEventsRequest.newBuilder() to construct.
    private ListEventsRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ListEventsRequest() {
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ListEventsRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              com.aiflow.proto.NotificationServiceOuterClass.EventProto.Builder subBuilder = null;
              if (event_ != null) {
                subBuilder = event_.toBuilder();
              }
              event_ = input.readMessage(com.aiflow.proto.NotificationServiceOuterClass.EventProto.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(event_);
                event_ = subBuilder.buildPartial();
              }

              break;
            }
            case 16: {

              timeoutSeconds_ = input.readInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.aiflow.proto.NotificationServiceOuterClass.internal_static_ListEventsRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.aiflow.proto.NotificationServiceOuterClass.internal_static_ListEventsRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest.class, com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest.Builder.class);
    }

    public static final int EVENT_FIELD_NUMBER = 1;
    private com.aiflow.proto.NotificationServiceOuterClass.EventProto event_;
    /**
     * <code>.EventProto event = 1;</code>
     */
    public boolean hasEvent() {
      return event_ != null;
    }
    /**
     * <code>.EventProto event = 1;</code>
     */
    public com.aiflow.proto.NotificationServiceOuterClass.EventProto getEvent() {
      return event_ == null ? com.aiflow.proto.NotificationServiceOuterClass.EventProto.getDefaultInstance() : event_;
    }
    /**
     * <code>.EventProto event = 1;</code>
     */
    public com.aiflow.proto.NotificationServiceOuterClass.EventProtoOrBuilder getEventOrBuilder() {
      return getEvent();
    }

    public static final int TIMEOUT_SECONDS_FIELD_NUMBER = 2;
    private int timeoutSeconds_;
    /**
     * <code>int32 timeout_seconds = 2;</code>
     */
    public int getTimeoutSeconds() {
      return timeoutSeconds_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (event_ != null) {
        output.writeMessage(1, getEvent());
      }
      if (timeoutSeconds_ != 0) {
        output.writeInt32(2, timeoutSeconds_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (event_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getEvent());
      }
      if (timeoutSeconds_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, timeoutSeconds_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest)) {
        return super.equals(obj);
      }
      com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest other = (com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest) obj;

      if (hasEvent() != other.hasEvent()) return false;
      if (hasEvent()) {
        if (!getEvent()
            .equals(other.getEvent())) return false;
      }
      if (getTimeoutSeconds()
          != other.getTimeoutSeconds()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasEvent()) {
        hash = (37 * hash) + EVENT_FIELD_NUMBER;
        hash = (53 * hash) + getEvent().hashCode();
      }
      hash = (37 * hash) + TIMEOUT_SECONDS_FIELD_NUMBER;
      hash = (53 * hash) + getTimeoutSeconds();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ListEventsRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ListEventsRequest)
        com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.aiflow.proto.NotificationServiceOuterClass.internal_static_ListEventsRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.aiflow.proto.NotificationServiceOuterClass.internal_static_ListEventsRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest.class, com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest.Builder.class);
      }

      // Construct using com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (eventBuilder_ == null) {
          event_ = null;
        } else {
          event_ = null;
          eventBuilder_ = null;
        }
        timeoutSeconds_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.aiflow.proto.NotificationServiceOuterClass.internal_static_ListEventsRequest_descriptor;
      }

      @java.lang.Override
      public com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest getDefaultInstanceForType() {
        return com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest.getDefaultInstance();
      }

      @java.lang.Override
      public com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest build() {
        com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest buildPartial() {
        com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest result = new com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest(this);
        if (eventBuilder_ == null) {
          result.event_ = event_;
        } else {
          result.event_ = eventBuilder_.build();
        }
        result.timeoutSeconds_ = timeoutSeconds_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest) {
          return mergeFrom((com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest other) {
        if (other == com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest.getDefaultInstance()) return this;
        if (other.hasEvent()) {
          mergeEvent(other.getEvent());
        }
        if (other.getTimeoutSeconds() != 0) {
          setTimeoutSeconds(other.getTimeoutSeconds());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private com.aiflow.proto.NotificationServiceOuterClass.EventProto event_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.aiflow.proto.NotificationServiceOuterClass.EventProto, com.aiflow.proto.NotificationServiceOuterClass.EventProto.Builder, com.aiflow.proto.NotificationServiceOuterClass.EventProtoOrBuilder> eventBuilder_;
      /**
       * <code>.EventProto event = 1;</code>
       */
      public boolean hasEvent() {
        return eventBuilder_ != null || event_ != null;
      }
      /**
       * <code>.EventProto event = 1;</code>
       */
      public com.aiflow.proto.NotificationServiceOuterClass.EventProto getEvent() {
        if (eventBuilder_ == null) {
          return event_ == null ? com.aiflow.proto.NotificationServiceOuterClass.EventProto.getDefaultInstance() : event_;
        } else {
          return eventBuilder_.getMessage();
        }
      }
      /**
       * <code>.EventProto event = 1;</code>
       */
      public Builder setEvent(com.aiflow.proto.NotificationServiceOuterClass.EventProto value) {
        if (eventBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          event_ = value;
          onChanged();
        } else {
          eventBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.EventProto event = 1;</code>
       */
      public Builder setEvent(
          com.aiflow.proto.NotificationServiceOuterClass.EventProto.Builder builderForValue) {
        if (eventBuilder_ == null) {
          event_ = builderForValue.build();
          onChanged();
        } else {
          eventBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.EventProto event = 1;</code>
       */
      public Builder mergeEvent(com.aiflow.proto.NotificationServiceOuterClass.EventProto value) {
        if (eventBuilder_ == null) {
          if (event_ != null) {
            event_ =
              com.aiflow.proto.NotificationServiceOuterClass.EventProto.newBuilder(event_).mergeFrom(value).buildPartial();
          } else {
            event_ = value;
          }
          onChanged();
        } else {
          eventBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.EventProto event = 1;</code>
       */
      public Builder clearEvent() {
        if (eventBuilder_ == null) {
          event_ = null;
          onChanged();
        } else {
          event_ = null;
          eventBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.EventProto event = 1;</code>
       */
      public com.aiflow.proto.NotificationServiceOuterClass.EventProto.Builder getEventBuilder() {
        
        onChanged();
        return getEventFieldBuilder().getBuilder();
      }
      /**
       * <code>.EventProto event = 1;</code>
       */
      public com.aiflow.proto.NotificationServiceOuterClass.EventProtoOrBuilder getEventOrBuilder() {
        if (eventBuilder_ != null) {
          return eventBuilder_.getMessageOrBuilder();
        } else {
          return event_ == null ?
              com.aiflow.proto.NotificationServiceOuterClass.EventProto.getDefaultInstance() : event_;
        }
      }
      /**
       * <code>.EventProto event = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.aiflow.proto.NotificationServiceOuterClass.EventProto, com.aiflow.proto.NotificationServiceOuterClass.EventProto.Builder, com.aiflow.proto.NotificationServiceOuterClass.EventProtoOrBuilder> 
          getEventFieldBuilder() {
        if (eventBuilder_ == null) {
          eventBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.aiflow.proto.NotificationServiceOuterClass.EventProto, com.aiflow.proto.NotificationServiceOuterClass.EventProto.Builder, com.aiflow.proto.NotificationServiceOuterClass.EventProtoOrBuilder>(
                  getEvent(),
                  getParentForChildren(),
                  isClean());
          event_ = null;
        }
        return eventBuilder_;
      }

      private int timeoutSeconds_ ;
      /**
       * <code>int32 timeout_seconds = 2;</code>
       */
      public int getTimeoutSeconds() {
        return timeoutSeconds_;
      }
      /**
       * <code>int32 timeout_seconds = 2;</code>
       */
      public Builder setTimeoutSeconds(int value) {
        
        timeoutSeconds_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 timeout_seconds = 2;</code>
       */
      public Builder clearTimeoutSeconds() {
        
        timeoutSeconds_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ListEventsRequest)
    }

    // @@protoc_insertion_point(class_scope:ListEventsRequest)
    private static final com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest();
    }

    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ListEventsRequest>
        PARSER = new com.google.protobuf.AbstractParser<ListEventsRequest>() {
      @java.lang.Override
      public ListEventsRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ListEventsRequest(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ListEventsRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ListEventsRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ListAllEventsRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ListAllEventsRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int64 start_time = 1;</code>
     */
    long getStartTime();

    /**
     * <code>int32 timeout_seconds = 2;</code>
     */
    int getTimeoutSeconds();
  }
  /**
   * Protobuf type {@code ListAllEventsRequest}
   */
  public  static final class ListAllEventsRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ListAllEventsRequest)
      ListAllEventsRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ListAllEventsRequest.newBuilder() to construct.
    private ListAllEventsRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ListAllEventsRequest() {
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ListAllEventsRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              startTime_ = input.readInt64();
              break;
            }
            case 16: {

              timeoutSeconds_ = input.readInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.aiflow.proto.NotificationServiceOuterClass.internal_static_ListAllEventsRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.aiflow.proto.NotificationServiceOuterClass.internal_static_ListAllEventsRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest.class, com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest.Builder.class);
    }

    public static final int START_TIME_FIELD_NUMBER = 1;
    private long startTime_;
    /**
     * <code>int64 start_time = 1;</code>
     */
    public long getStartTime() {
      return startTime_;
    }

    public static final int TIMEOUT_SECONDS_FIELD_NUMBER = 2;
    private int timeoutSeconds_;
    /**
     * <code>int32 timeout_seconds = 2;</code>
     */
    public int getTimeoutSeconds() {
      return timeoutSeconds_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (startTime_ != 0L) {
        output.writeInt64(1, startTime_);
      }
      if (timeoutSeconds_ != 0) {
        output.writeInt32(2, timeoutSeconds_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (startTime_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, startTime_);
      }
      if (timeoutSeconds_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, timeoutSeconds_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest)) {
        return super.equals(obj);
      }
      com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest other = (com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest) obj;

      if (getStartTime()
          != other.getStartTime()) return false;
      if (getTimeoutSeconds()
          != other.getTimeoutSeconds()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + START_TIME_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getStartTime());
      hash = (37 * hash) + TIMEOUT_SECONDS_FIELD_NUMBER;
      hash = (53 * hash) + getTimeoutSeconds();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ListAllEventsRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ListAllEventsRequest)
        com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.aiflow.proto.NotificationServiceOuterClass.internal_static_ListAllEventsRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.aiflow.proto.NotificationServiceOuterClass.internal_static_ListAllEventsRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest.class, com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest.Builder.class);
      }

      // Construct using com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        startTime_ = 0L;

        timeoutSeconds_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.aiflow.proto.NotificationServiceOuterClass.internal_static_ListAllEventsRequest_descriptor;
      }

      @java.lang.Override
      public com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest getDefaultInstanceForType() {
        return com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest.getDefaultInstance();
      }

      @java.lang.Override
      public com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest build() {
        com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest buildPartial() {
        com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest result = new com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest(this);
        result.startTime_ = startTime_;
        result.timeoutSeconds_ = timeoutSeconds_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest) {
          return mergeFrom((com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest other) {
        if (other == com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest.getDefaultInstance()) return this;
        if (other.getStartTime() != 0L) {
          setStartTime(other.getStartTime());
        }
        if (other.getTimeoutSeconds() != 0) {
          setTimeoutSeconds(other.getTimeoutSeconds());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private long startTime_ ;
      /**
       * <code>int64 start_time = 1;</code>
       */
      public long getStartTime() {
        return startTime_;
      }
      /**
       * <code>int64 start_time = 1;</code>
       */
      public Builder setStartTime(long value) {
        
        startTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int64 start_time = 1;</code>
       */
      public Builder clearStartTime() {
        
        startTime_ = 0L;
        onChanged();
        return this;
      }

      private int timeoutSeconds_ ;
      /**
       * <code>int32 timeout_seconds = 2;</code>
       */
      public int getTimeoutSeconds() {
        return timeoutSeconds_;
      }
      /**
       * <code>int32 timeout_seconds = 2;</code>
       */
      public Builder setTimeoutSeconds(int value) {
        
        timeoutSeconds_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 timeout_seconds = 2;</code>
       */
      public Builder clearTimeoutSeconds() {
        
        timeoutSeconds_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ListAllEventsRequest)
    }

    // @@protoc_insertion_point(class_scope:ListAllEventsRequest)
    private static final com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest();
    }

    public static com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ListAllEventsRequest>
        PARSER = new com.google.protobuf.AbstractParser<ListAllEventsRequest>() {
      @java.lang.Override
      public ListAllEventsRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ListAllEventsRequest(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ListAllEventsRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ListAllEventsRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ListEventsByIdRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ListEventsByIdRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int64 id = 1;</code>
     */
    long getId();

    /**
     * <code>int32 timeout_seconds = 2;</code>
     */
    int getTimeoutSeconds();
  }
  /**
   * Protobuf type {@code ListEventsByIdRequest}
   */
  public  static final class ListEventsByIdRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ListEventsByIdRequest)
      ListEventsByIdRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ListEventsByIdRequest.newBuilder() to construct.
    private ListEventsByIdRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ListEventsByIdRequest() {
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ListEventsByIdRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              id_ = input.readInt64();
              break;
            }
            case 16: {

              timeoutSeconds_ = input.readInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.aiflow.proto.NotificationServiceOuterClass.internal_static_ListEventsByIdRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.aiflow.proto.NotificationServiceOuterClass.internal_static_ListEventsByIdRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest.class, com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest.Builder.class);
    }

    public static final int ID_FIELD_NUMBER = 1;
    private long id_;
    /**
     * <code>int64 id = 1;</code>
     */
    public long getId() {
      return id_;
    }

    public static final int TIMEOUT_SECONDS_FIELD_NUMBER = 2;
    private int timeoutSeconds_;
    /**
     * <code>int32 timeout_seconds = 2;</code>
     */
    public int getTimeoutSeconds() {
      return timeoutSeconds_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (id_ != 0L) {
        output.writeInt64(1, id_);
      }
      if (timeoutSeconds_ != 0) {
        output.writeInt32(2, timeoutSeconds_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (id_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, id_);
      }
      if (timeoutSeconds_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, timeoutSeconds_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest)) {
        return super.equals(obj);
      }
      com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest other = (com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest) obj;

      if (getId()
          != other.getId()) return false;
      if (getTimeoutSeconds()
          != other.getTimeoutSeconds()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ID_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getId());
      hash = (37 * hash) + TIMEOUT_SECONDS_FIELD_NUMBER;
      hash = (53 * hash) + getTimeoutSeconds();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ListEventsByIdRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ListEventsByIdRequest)
        com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.aiflow.proto.NotificationServiceOuterClass.internal_static_ListEventsByIdRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.aiflow.proto.NotificationServiceOuterClass.internal_static_ListEventsByIdRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest.class, com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest.Builder.class);
      }

      // Construct using com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        id_ = 0L;

        timeoutSeconds_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.aiflow.proto.NotificationServiceOuterClass.internal_static_ListEventsByIdRequest_descriptor;
      }

      @java.lang.Override
      public com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest getDefaultInstanceForType() {
        return com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest.getDefaultInstance();
      }

      @java.lang.Override
      public com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest build() {
        com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest buildPartial() {
        com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest result = new com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest(this);
        result.id_ = id_;
        result.timeoutSeconds_ = timeoutSeconds_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest) {
          return mergeFrom((com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest other) {
        if (other == com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest.getDefaultInstance()) return this;
        if (other.getId() != 0L) {
          setId(other.getId());
        }
        if (other.getTimeoutSeconds() != 0) {
          setTimeoutSeconds(other.getTimeoutSeconds());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private long id_ ;
      /**
       * <code>int64 id = 1;</code>
       */
      public long getId() {
        return id_;
      }
      /**
       * <code>int64 id = 1;</code>
       */
      public Builder setId(long value) {
        
        id_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int64 id = 1;</code>
       */
      public Builder clearId() {
        
        id_ = 0L;
        onChanged();
        return this;
      }

      private int timeoutSeconds_ ;
      /**
       * <code>int32 timeout_seconds = 2;</code>
       */
      public int getTimeoutSeconds() {
        return timeoutSeconds_;
      }
      /**
       * <code>int32 timeout_seconds = 2;</code>
       */
      public Builder setTimeoutSeconds(int value) {
        
        timeoutSeconds_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 timeout_seconds = 2;</code>
       */
      public Builder clearTimeoutSeconds() {
        
        timeoutSeconds_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ListEventsByIdRequest)
    }

    // @@protoc_insertion_point(class_scope:ListEventsByIdRequest)
    private static final com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest();
    }

    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ListEventsByIdRequest>
        PARSER = new com.google.protobuf.AbstractParser<ListEventsByIdRequest>() {
      @java.lang.Override
      public ListEventsByIdRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ListEventsByIdRequest(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ListEventsByIdRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ListEventsByIdRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ListEventsResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ListEventsResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>string return_code = 1;</code>
     */
    java.lang.String getReturnCode();
    /**
     * <code>string return_code = 1;</code>
     */
    com.google.protobuf.ByteString
        getReturnCodeBytes();

    /**
     * <code>string return_msg = 2;</code>
     */
    java.lang.String getReturnMsg();
    /**
     * <code>string return_msg = 2;</code>
     */
    com.google.protobuf.ByteString
        getReturnMsgBytes();

    /**
     * <code>repeated .EventProto events = 3;</code>
     */
    java.util.List<com.aiflow.proto.NotificationServiceOuterClass.EventProto> 
        getEventsList();
    /**
     * <code>repeated .EventProto events = 3;</code>
     */
    com.aiflow.proto.NotificationServiceOuterClass.EventProto getEvents(int index);
    /**
     * <code>repeated .EventProto events = 3;</code>
     */
    int getEventsCount();
    /**
     * <code>repeated .EventProto events = 3;</code>
     */
    java.util.List<? extends com.aiflow.proto.NotificationServiceOuterClass.EventProtoOrBuilder> 
        getEventsOrBuilderList();
    /**
     * <code>repeated .EventProto events = 3;</code>
     */
    com.aiflow.proto.NotificationServiceOuterClass.EventProtoOrBuilder getEventsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code ListEventsResponse}
   */
  public  static final class ListEventsResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:ListEventsResponse)
      ListEventsResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ListEventsResponse.newBuilder() to construct.
    private ListEventsResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ListEventsResponse() {
      returnCode_ = "";
      returnMsg_ = "";
      events_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ListEventsResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              returnCode_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();

              returnMsg_ = s;
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000004) != 0)) {
                events_ = new java.util.ArrayList<com.aiflow.proto.NotificationServiceOuterClass.EventProto>();
                mutable_bitField0_ |= 0x00000004;
              }
              events_.add(
                  input.readMessage(com.aiflow.proto.NotificationServiceOuterClass.EventProto.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000004) != 0)) {
          events_ = java.util.Collections.unmodifiableList(events_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.aiflow.proto.NotificationServiceOuterClass.internal_static_ListEventsResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.aiflow.proto.NotificationServiceOuterClass.internal_static_ListEventsResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse.class, com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse.Builder.class);
    }

    private int bitField0_;
    public static final int RETURN_CODE_FIELD_NUMBER = 1;
    private volatile java.lang.Object returnCode_;
    /**
     * <code>string return_code = 1;</code>
     */
    public java.lang.String getReturnCode() {
      java.lang.Object ref = returnCode_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        returnCode_ = s;
        return s;
      }
    }
    /**
     * <code>string return_code = 1;</code>
     */
    public com.google.protobuf.ByteString
        getReturnCodeBytes() {
      java.lang.Object ref = returnCode_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        returnCode_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int RETURN_MSG_FIELD_NUMBER = 2;
    private volatile java.lang.Object returnMsg_;
    /**
     * <code>string return_msg = 2;</code>
     */
    public java.lang.String getReturnMsg() {
      java.lang.Object ref = returnMsg_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        returnMsg_ = s;
        return s;
      }
    }
    /**
     * <code>string return_msg = 2;</code>
     */
    public com.google.protobuf.ByteString
        getReturnMsgBytes() {
      java.lang.Object ref = returnMsg_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        returnMsg_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EVENTS_FIELD_NUMBER = 3;
    private java.util.List<com.aiflow.proto.NotificationServiceOuterClass.EventProto> events_;
    /**
     * <code>repeated .EventProto events = 3;</code>
     */
    public java.util.List<com.aiflow.proto.NotificationServiceOuterClass.EventProto> getEventsList() {
      return events_;
    }
    /**
     * <code>repeated .EventProto events = 3;</code>
     */
    public java.util.List<? extends com.aiflow.proto.NotificationServiceOuterClass.EventProtoOrBuilder> 
        getEventsOrBuilderList() {
      return events_;
    }
    /**
     * <code>repeated .EventProto events = 3;</code>
     */
    public int getEventsCount() {
      return events_.size();
    }
    /**
     * <code>repeated .EventProto events = 3;</code>
     */
    public com.aiflow.proto.NotificationServiceOuterClass.EventProto getEvents(int index) {
      return events_.get(index);
    }
    /**
     * <code>repeated .EventProto events = 3;</code>
     */
    public com.aiflow.proto.NotificationServiceOuterClass.EventProtoOrBuilder getEventsOrBuilder(
        int index) {
      return events_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getReturnCodeBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, returnCode_);
      }
      if (!getReturnMsgBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, returnMsg_);
      }
      for (int i = 0; i < events_.size(); i++) {
        output.writeMessage(3, events_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!getReturnCodeBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, returnCode_);
      }
      if (!getReturnMsgBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, returnMsg_);
      }
      for (int i = 0; i < events_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, events_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse)) {
        return super.equals(obj);
      }
      com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse other = (com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse) obj;

      if (!getReturnCode()
          .equals(other.getReturnCode())) return false;
      if (!getReturnMsg()
          .equals(other.getReturnMsg())) return false;
      if (!getEventsList()
          .equals(other.getEventsList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + RETURN_CODE_FIELD_NUMBER;
      hash = (53 * hash) + getReturnCode().hashCode();
      hash = (37 * hash) + RETURN_MSG_FIELD_NUMBER;
      hash = (53 * hash) + getReturnMsg().hashCode();
      if (getEventsCount() > 0) {
        hash = (37 * hash) + EVENTS_FIELD_NUMBER;
        hash = (53 * hash) + getEventsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code ListEventsResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:ListEventsResponse)
        com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.aiflow.proto.NotificationServiceOuterClass.internal_static_ListEventsResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.aiflow.proto.NotificationServiceOuterClass.internal_static_ListEventsResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse.class, com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse.Builder.class);
      }

      // Construct using com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getEventsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        returnCode_ = "";

        returnMsg_ = "";

        if (eventsBuilder_ == null) {
          events_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          eventsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.aiflow.proto.NotificationServiceOuterClass.internal_static_ListEventsResponse_descriptor;
      }

      @java.lang.Override
      public com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse getDefaultInstanceForType() {
        return com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse.getDefaultInstance();
      }

      @java.lang.Override
      public com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse build() {
        com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse buildPartial() {
        com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse result = new com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        result.returnCode_ = returnCode_;
        result.returnMsg_ = returnMsg_;
        if (eventsBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0)) {
            events_ = java.util.Collections.unmodifiableList(events_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.events_ = events_;
        } else {
          result.events_ = eventsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse) {
          return mergeFrom((com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse other) {
        if (other == com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse.getDefaultInstance()) return this;
        if (!other.getReturnCode().isEmpty()) {
          returnCode_ = other.returnCode_;
          onChanged();
        }
        if (!other.getReturnMsg().isEmpty()) {
          returnMsg_ = other.returnMsg_;
          onChanged();
        }
        if (eventsBuilder_ == null) {
          if (!other.events_.isEmpty()) {
            if (events_.isEmpty()) {
              events_ = other.events_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureEventsIsMutable();
              events_.addAll(other.events_);
            }
            onChanged();
          }
        } else {
          if (!other.events_.isEmpty()) {
            if (eventsBuilder_.isEmpty()) {
              eventsBuilder_.dispose();
              eventsBuilder_ = null;
              events_ = other.events_;
              bitField0_ = (bitField0_ & ~0x00000004);
              eventsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getEventsFieldBuilder() : null;
            } else {
              eventsBuilder_.addAllMessages(other.events_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object returnCode_ = "";
      /**
       * <code>string return_code = 1;</code>
       */
      public java.lang.String getReturnCode() {
        java.lang.Object ref = returnCode_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          returnCode_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string return_code = 1;</code>
       */
      public com.google.protobuf.ByteString
          getReturnCodeBytes() {
        java.lang.Object ref = returnCode_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          returnCode_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string return_code = 1;</code>
       */
      public Builder setReturnCode(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        returnCode_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string return_code = 1;</code>
       */
      public Builder clearReturnCode() {
        
        returnCode_ = getDefaultInstance().getReturnCode();
        onChanged();
        return this;
      }
      /**
       * <code>string return_code = 1;</code>
       */
      public Builder setReturnCodeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        returnCode_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object returnMsg_ = "";
      /**
       * <code>string return_msg = 2;</code>
       */
      public java.lang.String getReturnMsg() {
        java.lang.Object ref = returnMsg_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          returnMsg_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string return_msg = 2;</code>
       */
      public com.google.protobuf.ByteString
          getReturnMsgBytes() {
        java.lang.Object ref = returnMsg_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          returnMsg_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string return_msg = 2;</code>
       */
      public Builder setReturnMsg(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        returnMsg_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>string return_msg = 2;</code>
       */
      public Builder clearReturnMsg() {
        
        returnMsg_ = getDefaultInstance().getReturnMsg();
        onChanged();
        return this;
      }
      /**
       * <code>string return_msg = 2;</code>
       */
      public Builder setReturnMsgBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        returnMsg_ = value;
        onChanged();
        return this;
      }

      private java.util.List<com.aiflow.proto.NotificationServiceOuterClass.EventProto> events_ =
        java.util.Collections.emptyList();
      private void ensureEventsIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          events_ = new java.util.ArrayList<com.aiflow.proto.NotificationServiceOuterClass.EventProto>(events_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.aiflow.proto.NotificationServiceOuterClass.EventProto, com.aiflow.proto.NotificationServiceOuterClass.EventProto.Builder, com.aiflow.proto.NotificationServiceOuterClass.EventProtoOrBuilder> eventsBuilder_;

      /**
       * <code>repeated .EventProto events = 3;</code>
       */
      public java.util.List<com.aiflow.proto.NotificationServiceOuterClass.EventProto> getEventsList() {
        if (eventsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(events_);
        } else {
          return eventsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .EventProto events = 3;</code>
       */
      public int getEventsCount() {
        if (eventsBuilder_ == null) {
          return events_.size();
        } else {
          return eventsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .EventProto events = 3;</code>
       */
      public com.aiflow.proto.NotificationServiceOuterClass.EventProto getEvents(int index) {
        if (eventsBuilder_ == null) {
          return events_.get(index);
        } else {
          return eventsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .EventProto events = 3;</code>
       */
      public Builder setEvents(
          int index, com.aiflow.proto.NotificationServiceOuterClass.EventProto value) {
        if (eventsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEventsIsMutable();
          events_.set(index, value);
          onChanged();
        } else {
          eventsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .EventProto events = 3;</code>
       */
      public Builder setEvents(
          int index, com.aiflow.proto.NotificationServiceOuterClass.EventProto.Builder builderForValue) {
        if (eventsBuilder_ == null) {
          ensureEventsIsMutable();
          events_.set(index, builderForValue.build());
          onChanged();
        } else {
          eventsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .EventProto events = 3;</code>
       */
      public Builder addEvents(com.aiflow.proto.NotificationServiceOuterClass.EventProto value) {
        if (eventsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEventsIsMutable();
          events_.add(value);
          onChanged();
        } else {
          eventsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .EventProto events = 3;</code>
       */
      public Builder addEvents(
          int index, com.aiflow.proto.NotificationServiceOuterClass.EventProto value) {
        if (eventsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEventsIsMutable();
          events_.add(index, value);
          onChanged();
        } else {
          eventsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .EventProto events = 3;</code>
       */
      public Builder addEvents(
          com.aiflow.proto.NotificationServiceOuterClass.EventProto.Builder builderForValue) {
        if (eventsBuilder_ == null) {
          ensureEventsIsMutable();
          events_.add(builderForValue.build());
          onChanged();
        } else {
          eventsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .EventProto events = 3;</code>
       */
      public Builder addEvents(
          int index, com.aiflow.proto.NotificationServiceOuterClass.EventProto.Builder builderForValue) {
        if (eventsBuilder_ == null) {
          ensureEventsIsMutable();
          events_.add(index, builderForValue.build());
          onChanged();
        } else {
          eventsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .EventProto events = 3;</code>
       */
      public Builder addAllEvents(
          java.lang.Iterable<? extends com.aiflow.proto.NotificationServiceOuterClass.EventProto> values) {
        if (eventsBuilder_ == null) {
          ensureEventsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, events_);
          onChanged();
        } else {
          eventsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .EventProto events = 3;</code>
       */
      public Builder clearEvents() {
        if (eventsBuilder_ == null) {
          events_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          eventsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .EventProto events = 3;</code>
       */
      public Builder removeEvents(int index) {
        if (eventsBuilder_ == null) {
          ensureEventsIsMutable();
          events_.remove(index);
          onChanged();
        } else {
          eventsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .EventProto events = 3;</code>
       */
      public com.aiflow.proto.NotificationServiceOuterClass.EventProto.Builder getEventsBuilder(
          int index) {
        return getEventsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .EventProto events = 3;</code>
       */
      public com.aiflow.proto.NotificationServiceOuterClass.EventProtoOrBuilder getEventsOrBuilder(
          int index) {
        if (eventsBuilder_ == null) {
          return events_.get(index);  } else {
          return eventsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .EventProto events = 3;</code>
       */
      public java.util.List<? extends com.aiflow.proto.NotificationServiceOuterClass.EventProtoOrBuilder> 
           getEventsOrBuilderList() {
        if (eventsBuilder_ != null) {
          return eventsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(events_);
        }
      }
      /**
       * <code>repeated .EventProto events = 3;</code>
       */
      public com.aiflow.proto.NotificationServiceOuterClass.EventProto.Builder addEventsBuilder() {
        return getEventsFieldBuilder().addBuilder(
            com.aiflow.proto.NotificationServiceOuterClass.EventProto.getDefaultInstance());
      }
      /**
       * <code>repeated .EventProto events = 3;</code>
       */
      public com.aiflow.proto.NotificationServiceOuterClass.EventProto.Builder addEventsBuilder(
          int index) {
        return getEventsFieldBuilder().addBuilder(
            index, com.aiflow.proto.NotificationServiceOuterClass.EventProto.getDefaultInstance());
      }
      /**
       * <code>repeated .EventProto events = 3;</code>
       */
      public java.util.List<com.aiflow.proto.NotificationServiceOuterClass.EventProto.Builder> 
           getEventsBuilderList() {
        return getEventsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.aiflow.proto.NotificationServiceOuterClass.EventProto, com.aiflow.proto.NotificationServiceOuterClass.EventProto.Builder, com.aiflow.proto.NotificationServiceOuterClass.EventProtoOrBuilder> 
          getEventsFieldBuilder() {
        if (eventsBuilder_ == null) {
          eventsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.aiflow.proto.NotificationServiceOuterClass.EventProto, com.aiflow.proto.NotificationServiceOuterClass.EventProto.Builder, com.aiflow.proto.NotificationServiceOuterClass.EventProtoOrBuilder>(
                  events_,
                  ((bitField0_ & 0x00000004) != 0),
                  getParentForChildren(),
                  isClean());
          events_ = null;
        }
        return eventsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:ListEventsResponse)
    }

    // @@protoc_insertion_point(class_scope:ListEventsResponse)
    private static final com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse();
    }

    public static com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ListEventsResponse>
        PARSER = new com.google.protobuf.AbstractParser<ListEventsResponse>() {
      @java.lang.Override
      public ListEventsResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ListEventsResponse(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ListEventsResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ListEventsResponse> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  /**
   * <pre>
   * AIFlowService provides notification function rest endpoint of NotificationService for Notification Service component.
   * Functions of NotificationService include:
   * </pre>
   *
   * Protobuf service {@code NotificationService}
   */
  public static abstract class NotificationService
      implements com.google.protobuf.Service {
    protected NotificationService() {}

    public interface Interface {
      /**
       * <pre>
       * Send event.
       * </pre>
       *
       * <code>rpc sendEvent(.SendEventRequest) returns (.SendEventsResponse) { ... }</code>
       */
      public abstract void sendEvent(
          com.google.protobuf.RpcController controller,
          com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest request,
          com.google.protobuf.RpcCallback<com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse> done);

      /**
       * <pre>
       * List events.
       * </pre>
       *
       * <code>rpc listEvents(.ListEventsRequest) returns (.ListEventsResponse) { ... }</code>
       */
      public abstract void listEvents(
          com.google.protobuf.RpcController controller,
          com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest request,
          com.google.protobuf.RpcCallback<com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse> done);

      /**
       * <pre>
       * List all events from the start time.
       * </pre>
       *
       * <code>rpc listAllEvents(.ListAllEventsRequest) returns (.ListEventsResponse) { ... }</code>
       */
      public abstract void listAllEvents(
          com.google.protobuf.RpcController controller,
          com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest request,
          com.google.protobuf.RpcCallback<com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse> done);

      /**
       * <pre>
       * List all events from the id.
       * </pre>
       *
       * <code>rpc listEventsById(.ListEventsByIdRequest) returns (.ListEventsResponse) { ... }</code>
       */
      public abstract void listEventsById(
          com.google.protobuf.RpcController controller,
          com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest request,
          com.google.protobuf.RpcCallback<com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse> done);

    }

    public static com.google.protobuf.Service newReflectiveService(
        final Interface impl) {
      return new NotificationService() {
        @java.lang.Override
        public  void sendEvent(
            com.google.protobuf.RpcController controller,
            com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest request,
            com.google.protobuf.RpcCallback<com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse> done) {
          impl.sendEvent(controller, request, done);
        }

        @java.lang.Override
        public  void listEvents(
            com.google.protobuf.RpcController controller,
            com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest request,
            com.google.protobuf.RpcCallback<com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse> done) {
          impl.listEvents(controller, request, done);
        }

        @java.lang.Override
        public  void listAllEvents(
            com.google.protobuf.RpcController controller,
            com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest request,
            com.google.protobuf.RpcCallback<com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse> done) {
          impl.listAllEvents(controller, request, done);
        }

        @java.lang.Override
        public  void listEventsById(
            com.google.protobuf.RpcController controller,
            com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest request,
            com.google.protobuf.RpcCallback<com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse> done) {
          impl.listEventsById(controller, request, done);
        }

      };
    }

    public static com.google.protobuf.BlockingService
        newReflectiveBlockingService(final BlockingInterface impl) {
      return new com.google.protobuf.BlockingService() {
        public final com.google.protobuf.Descriptors.ServiceDescriptor
            getDescriptorForType() {
          return getDescriptor();
        }

        public final com.google.protobuf.Message callBlockingMethod(
            com.google.protobuf.Descriptors.MethodDescriptor method,
            com.google.protobuf.RpcController controller,
            com.google.protobuf.Message request)
            throws com.google.protobuf.ServiceException {
          if (method.getService() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "Service.callBlockingMethod() given method descriptor for " +
              "wrong service type.");
          }
          switch(method.getIndex()) {
            case 0:
              return impl.sendEvent(controller, (com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest)request);
            case 1:
              return impl.listEvents(controller, (com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest)request);
            case 2:
              return impl.listAllEvents(controller, (com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest)request);
            case 3:
              return impl.listEventsById(controller, (com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest)request);
            default:
              throw new java.lang.AssertionError("Can't get here.");
          }
        }

        public final com.google.protobuf.Message
            getRequestPrototype(
            com.google.protobuf.Descriptors.MethodDescriptor method) {
          if (method.getService() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "Service.getRequestPrototype() given method " +
              "descriptor for wrong service type.");
          }
          switch(method.getIndex()) {
            case 0:
              return com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest.getDefaultInstance();
            case 1:
              return com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest.getDefaultInstance();
            case 2:
              return com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest.getDefaultInstance();
            case 3:
              return com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest.getDefaultInstance();
            default:
              throw new java.lang.AssertionError("Can't get here.");
          }
        }

        public final com.google.protobuf.Message
            getResponsePrototype(
            com.google.protobuf.Descriptors.MethodDescriptor method) {
          if (method.getService() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "Service.getResponsePrototype() given method " +
              "descriptor for wrong service type.");
          }
          switch(method.getIndex()) {
            case 0:
              return com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse.getDefaultInstance();
            case 1:
              return com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse.getDefaultInstance();
            case 2:
              return com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse.getDefaultInstance();
            case 3:
              return com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse.getDefaultInstance();
            default:
              throw new java.lang.AssertionError("Can't get here.");
          }
        }

      };
    }

    /**
     * <pre>
     * Send event.
     * </pre>
     *
     * <code>rpc sendEvent(.SendEventRequest) returns (.SendEventsResponse) { ... }</code>
     */
    public abstract void sendEvent(
        com.google.protobuf.RpcController controller,
        com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest request,
        com.google.protobuf.RpcCallback<com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse> done);

    /**
     * <pre>
     * List events.
     * </pre>
     *
     * <code>rpc listEvents(.ListEventsRequest) returns (.ListEventsResponse) { ... }</code>
     */
    public abstract void listEvents(
        com.google.protobuf.RpcController controller,
        com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest request,
        com.google.protobuf.RpcCallback<com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse> done);

    /**
     * <pre>
     * List all events from the start time.
     * </pre>
     *
     * <code>rpc listAllEvents(.ListAllEventsRequest) returns (.ListEventsResponse) { ... }</code>
     */
    public abstract void listAllEvents(
        com.google.protobuf.RpcController controller,
        com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest request,
        com.google.protobuf.RpcCallback<com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse> done);

    /**
     * <pre>
     * List all events from the id.
     * </pre>
     *
     * <code>rpc listEventsById(.ListEventsByIdRequest) returns (.ListEventsResponse) { ... }</code>
     */
    public abstract void listEventsById(
        com.google.protobuf.RpcController controller,
        com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest request,
        com.google.protobuf.RpcCallback<com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse> done);

    public static final
        com.google.protobuf.Descriptors.ServiceDescriptor
        getDescriptor() {
      return com.aiflow.proto.NotificationServiceOuterClass.getDescriptor().getServices().get(0);
    }
    public final com.google.protobuf.Descriptors.ServiceDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }

    public final void callMethod(
        com.google.protobuf.Descriptors.MethodDescriptor method,
        com.google.protobuf.RpcController controller,
        com.google.protobuf.Message request,
        com.google.protobuf.RpcCallback<
          com.google.protobuf.Message> done) {
      if (method.getService() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "Service.callMethod() given method descriptor for wrong " +
          "service type.");
      }
      switch(method.getIndex()) {
        case 0:
          this.sendEvent(controller, (com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest)request,
            com.google.protobuf.RpcUtil.<com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse>specializeCallback(
              done));
          return;
        case 1:
          this.listEvents(controller, (com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest)request,
            com.google.protobuf.RpcUtil.<com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse>specializeCallback(
              done));
          return;
        case 2:
          this.listAllEvents(controller, (com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest)request,
            com.google.protobuf.RpcUtil.<com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse>specializeCallback(
              done));
          return;
        case 3:
          this.listEventsById(controller, (com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest)request,
            com.google.protobuf.RpcUtil.<com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse>specializeCallback(
              done));
          return;
        default:
          throw new java.lang.AssertionError("Can't get here.");
      }
    }

    public final com.google.protobuf.Message
        getRequestPrototype(
        com.google.protobuf.Descriptors.MethodDescriptor method) {
      if (method.getService() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "Service.getRequestPrototype() given method " +
          "descriptor for wrong service type.");
      }
      switch(method.getIndex()) {
        case 0:
          return com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest.getDefaultInstance();
        case 1:
          return com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest.getDefaultInstance();
        case 2:
          return com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest.getDefaultInstance();
        case 3:
          return com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest.getDefaultInstance();
        default:
          throw new java.lang.AssertionError("Can't get here.");
      }
    }

    public final com.google.protobuf.Message
        getResponsePrototype(
        com.google.protobuf.Descriptors.MethodDescriptor method) {
      if (method.getService() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "Service.getResponsePrototype() given method " +
          "descriptor for wrong service type.");
      }
      switch(method.getIndex()) {
        case 0:
          return com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse.getDefaultInstance();
        case 1:
          return com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse.getDefaultInstance();
        case 2:
          return com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse.getDefaultInstance();
        case 3:
          return com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse.getDefaultInstance();
        default:
          throw new java.lang.AssertionError("Can't get here.");
      }
    }

    public static Stub newStub(
        com.google.protobuf.RpcChannel channel) {
      return new Stub(channel);
    }

    public static final class Stub extends com.aiflow.proto.NotificationServiceOuterClass.NotificationService implements Interface {
      private Stub(com.google.protobuf.RpcChannel channel) {
        this.channel = channel;
      }

      private final com.google.protobuf.RpcChannel channel;

      public com.google.protobuf.RpcChannel getChannel() {
        return channel;
      }

      public  void sendEvent(
          com.google.protobuf.RpcController controller,
          com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest request,
          com.google.protobuf.RpcCallback<com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse> done) {
        channel.callMethod(
          getDescriptor().getMethods().get(0),
          controller,
          request,
          com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse.class,
            com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse.getDefaultInstance()));
      }

      public  void listEvents(
          com.google.protobuf.RpcController controller,
          com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest request,
          com.google.protobuf.RpcCallback<com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse> done) {
        channel.callMethod(
          getDescriptor().getMethods().get(1),
          controller,
          request,
          com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse.class,
            com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse.getDefaultInstance()));
      }

      public  void listAllEvents(
          com.google.protobuf.RpcController controller,
          com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest request,
          com.google.protobuf.RpcCallback<com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse> done) {
        channel.callMethod(
          getDescriptor().getMethods().get(2),
          controller,
          request,
          com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse.class,
            com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse.getDefaultInstance()));
      }

      public  void listEventsById(
          com.google.protobuf.RpcController controller,
          com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest request,
          com.google.protobuf.RpcCallback<com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse> done) {
        channel.callMethod(
          getDescriptor().getMethods().get(3),
          controller,
          request,
          com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse.getDefaultInstance(),
          com.google.protobuf.RpcUtil.generalizeCallback(
            done,
            com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse.class,
            com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse.getDefaultInstance()));
      }
    }

    public static BlockingInterface newBlockingStub(
        com.google.protobuf.BlockingRpcChannel channel) {
      return new BlockingStub(channel);
    }

    public interface BlockingInterface {
      public com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse sendEvent(
          com.google.protobuf.RpcController controller,
          com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest request)
          throws com.google.protobuf.ServiceException;

      public com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse listEvents(
          com.google.protobuf.RpcController controller,
          com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest request)
          throws com.google.protobuf.ServiceException;

      public com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse listAllEvents(
          com.google.protobuf.RpcController controller,
          com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest request)
          throws com.google.protobuf.ServiceException;

      public com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse listEventsById(
          com.google.protobuf.RpcController controller,
          com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest request)
          throws com.google.protobuf.ServiceException;
    }

    private static final class BlockingStub implements BlockingInterface {
      private BlockingStub(com.google.protobuf.BlockingRpcChannel channel) {
        this.channel = channel;
      }

      private final com.google.protobuf.BlockingRpcChannel channel;

      public com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse sendEvent(
          com.google.protobuf.RpcController controller,
          com.aiflow.proto.NotificationServiceOuterClass.SendEventRequest request)
          throws com.google.protobuf.ServiceException {
        return (com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(0),
          controller,
          request,
          com.aiflow.proto.NotificationServiceOuterClass.SendEventsResponse.getDefaultInstance());
      }


      public com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse listEvents(
          com.google.protobuf.RpcController controller,
          com.aiflow.proto.NotificationServiceOuterClass.ListEventsRequest request)
          throws com.google.protobuf.ServiceException {
        return (com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(1),
          controller,
          request,
          com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse.getDefaultInstance());
      }


      public com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse listAllEvents(
          com.google.protobuf.RpcController controller,
          com.aiflow.proto.NotificationServiceOuterClass.ListAllEventsRequest request)
          throws com.google.protobuf.ServiceException {
        return (com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(2),
          controller,
          request,
          com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse.getDefaultInstance());
      }


      public com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse listEventsById(
          com.google.protobuf.RpcController controller,
          com.aiflow.proto.NotificationServiceOuterClass.ListEventsByIdRequest request)
          throws com.google.protobuf.ServiceException {
        return (com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse) channel.callBlockingMethod(
          getDescriptor().getMethods().get(3),
          controller,
          request,
          com.aiflow.proto.NotificationServiceOuterClass.ListEventsResponse.getDefaultInstance());
      }

    }

    // @@protoc_insertion_point(class_scope:NotificationService)
  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_EventProto_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_EventProto_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_SendEventRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_SendEventRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_SendEventsResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_SendEventsResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ListEventsRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ListEventsRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ListAllEventsRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ListAllEventsRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ListEventsByIdRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ListEventsByIdRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_ListEventsResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_ListEventsResponse_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\032notification_service.proto\032\036google/pro" +
      "tobuf/wrappers.proto\032\034google/api/annotat" +
      "ions.proto\"n\n\nEventProto\022\013\n\003key\030\001 \001(\t\022\r\n" +
      "\005value\030\002 \001(\t\022\022\n\nevent_type\030\003 \001(\t\022\017\n\007vers" +
      "ion\030\004 \001(\005\022\023\n\013create_time\030\005 \001(\003\022\n\n\002id\030\006 \001" +
      "(\003\".\n\020SendEventRequest\022\032\n\005event\030\001 \001(\0132\013." +
      "EventProto\"Y\n\022SendEventsResponse\022\023\n\013retu" +
      "rn_code\030\001 \001(\t\022\022\n\nreturn_msg\030\002 \001(\t\022\032\n\005eve" +
      "nt\030\003 \001(\0132\013.EventProto\"H\n\021ListEventsReque" +
      "st\022\032\n\005event\030\001 \001(\0132\013.EventProto\022\027\n\017timeou" +
      "t_seconds\030\002 \001(\005\"C\n\024ListAllEventsRequest\022" +
      "\022\n\nstart_time\030\001 \001(\003\022\027\n\017timeout_seconds\030\002" +
      " \001(\005\"<\n\025ListEventsByIdRequest\022\n\n\002id\030\001 \001(" +
      "\003\022\027\n\017timeout_seconds\030\002 \001(\005\"Z\n\022ListEvents" +
      "Response\022\023\n\013return_code\030\001 \001(\t\022\022\n\nreturn_" +
      "msg\030\002 \001(\t\022\033\n\006events\030\003 \003(\0132\013.EventProto2\332" +
      "\003\n\023NotificationService\022g\n\tsendEvent\022\021.Se" +
      "ndEventRequest\032\023.SendEventsResponse\"2\202\323\344" +
      "\223\002,\"\'/aiflow/notification-service/send_e" +
      "vent:\001*\022j\n\nlistEvents\022\022.ListEventsReques" +
      "t\032\023.ListEventsResponse\"3\202\323\344\223\002-\"(/aiflow/" +
      "notification-service/list_events:\001*\022t\n\rl" +
      "istAllEvents\022\025.ListAllEventsRequest\032\023.Li" +
      "stEventsResponse\"7\202\323\344\223\0021\",/aiflow/notifi" +
      "cation-service/list_all_events:\001*\022x\n\016lis" +
      "tEventsById\022\026.ListEventsByIdRequest\032\023.Li" +
      "stEventsResponse\"9\202\323\344\223\0023\"./aiflow/notifi" +
      "cation-service/list_events_by_id:\001*B\030\n\020c" +
      "om.aiflow.proto\210\001\001\220\001\001b\006proto3"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
          public com.google.protobuf.ExtensionRegistry assignDescriptors(
              com.google.protobuf.Descriptors.FileDescriptor root) {
            descriptor = root;
            return null;
          }
        };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          com.google.protobuf.WrappersProto.getDescriptor(),
          com.google.api.AnnotationsProto.getDescriptor(),
        }, assigner);
    internal_static_EventProto_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_EventProto_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_EventProto_descriptor,
        new java.lang.String[] { "Key", "Value", "EventType", "Version", "CreateTime", "Id", });
    internal_static_SendEventRequest_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_SendEventRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_SendEventRequest_descriptor,
        new java.lang.String[] { "Event", });
    internal_static_SendEventsResponse_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_SendEventsResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_SendEventsResponse_descriptor,
        new java.lang.String[] { "ReturnCode", "ReturnMsg", "Event", });
    internal_static_ListEventsRequest_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_ListEventsRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ListEventsRequest_descriptor,
        new java.lang.String[] { "Event", "TimeoutSeconds", });
    internal_static_ListAllEventsRequest_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_ListAllEventsRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ListAllEventsRequest_descriptor,
        new java.lang.String[] { "StartTime", "TimeoutSeconds", });
    internal_static_ListEventsByIdRequest_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_ListEventsByIdRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ListEventsByIdRequest_descriptor,
        new java.lang.String[] { "Id", "TimeoutSeconds", });
    internal_static_ListEventsResponse_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_ListEventsResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_ListEventsResponse_descriptor,
        new java.lang.String[] { "ReturnCode", "ReturnMsg", "Events", });
    com.google.protobuf.ExtensionRegistry registry =
        com.google.protobuf.ExtensionRegistry.newInstance();
    registry.add(com.google.api.AnnotationsProto.http);
    com.google.protobuf.Descriptors.FileDescriptor
        .internalUpdateFileDescriptor(descriptor, registry);
    com.google.protobuf.WrappersProto.getDescriptor();
    com.google.api.AnnotationsProto.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
